#!/usr/bin/env python

__license__ = 'GPL v3'

'''DistroWatch Weekly'''

import datetime

from calibre.web.feeds.news import BasicNewsRecipe


class DistroWatchWeekly(BasicNewsRecipe):
    title = 'DistroWatch Weekly'
    description = 'Weekly news about Linux distributions'
    category = 'Linux, Technology, News'
    oldest_article = 14
    language = 'en'
    max_articles_per_feed = 50
    no_stylesheets = True
    use_embedded_content = False
    timefmt = ' [%A, %d %B, %Y]'
    auto_cleanup = False

    keep_only_tags = [
        dict(
            attrs={
                'class':
                lambda x: x and ('News1' in x)
            }
        )
    ]

    def _get_mag_date(self):
        '''Return date of latest weekly issue.'''

        d = datetime.date(2022, 6, 20)
        t = datetime.date.today()
        ld = None
        while d <= t:
            ld = d
            d += datetime.timedelta(days=7)
        return ld

    def parse_index(self):

        # Get URL of latest mag page
        ld = self._get_mag_date()
        url = ld.strftime('https://distrowatch.com/weekly.php?issue=%Y%m%d')
        url = url.lower()
        title = ld.strftime('DistroWatch Weekly for %Y-%m-%d')

        # Get articles
        stories = [{
            'url': url,
            'title': title,
        },]
        index = [
            ('Articles', stories),
        ]

        return index
